<template>
  <div class="example-container">
    <h1 class="title">CSS 变量和 Mixins 示例</h1>
    
    <div class="card">
      <div class="card-header">
        <h2>使用案例</h2>
      </div>
      <div class="card-body">
        <p class="text-ellipsis">这是一个超长的文本，会被自动省略显示...</p>
        <p class="multi-line-text">
          这是一个多行文本示例，这是一个多行文本示例，这是一个多行文本示例，
          这是一个多行文本示例，这是一个多行文本示例。
        </p>
      </div>
    </div>
    
    <div class="button-group">
      <button class="btn primary">主按钮</button>
      <button class="btn secondary">次按钮</button>
    </div>
  </div>
</template>

<script setup lang="ts">
// 组件逻辑
</script>

<style lang="scss" scoped>
@use "sass:map";

// 示例：使用响应式 Mixin
.example-container {
  width: 100%;
  padding: 20px;
  
  // 移动端样式
  @include mobile {
    padding: 24px; // 会被转为 vw
    background-color: $mobile-bg-color;
  }
  
  // PC端样式
  @include pc {
    padding: 20px; // 会被转为 rem
    background-color: $pc-bg-color;
  }
}

// 示例：使用 Flex 布局 Mixin
.title {
  @include flex-center;
  height: 60px;
  
  @include responsive-font(32px, 24px);
  color: $mobile-primary-color;
  
  @include mobile {
    height: 88px; // 移动端更高
  }
  
  @include pc {
    height: 60px;
  }
}

// 示例：使用卡片样式
.card {
  margin: 20px 0;
  background: white;
  border-radius: map.get($border-radius, md);
  box-shadow: map.get($box-shadow, md);
  overflow: hidden;
  
  .card-header {
    @include flex-vertical-center;
    padding: 16px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    
    @include mobile {
      padding: 24px;
    }
    
    h2 {
      @include responsive-font(28px, 18px);
      font-weight: 500;
    }
  }
  
  .card-body {
    padding: 20px;
    
    @include mobile {
      padding: 32px;
    }
  }
}

// 示例：使用文本省略 Mixin
.text-ellipsis {
  @include text-ellipsis;
  margin-bottom: 12px;
}

.multi-line-text {
  @include text-ellipsis-multi(3); // 3行省略
  color: #666;
  line-height: 1.6;
}

// 示例：使用按钮样式
.button-group {
  @include flex-center;
  gap: 16px;
  margin-top: 20px;
  
  @include mobile {
    gap: 24px;
    margin-top: 32px;
  }
}

.btn {
  padding: 12px 24px;
  border-radius: map.get($border-radius, sm);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  @include transition;
  
  @include mobile {
    padding: 20px 40px;
    font-size: 28px;
    border-radius: 8px;
  }
  
  &.primary {
    background-color: $pc-primary-color;
    color: white;
    
    // PC端悬停效果
    @include pc {
      &:hover {
        transform: translateY(-2px);
        box-shadow: map.get($box-shadow, lg);
      }
    }
    
    // 移动端点击效果
    @include tap-active(0.8);
  }
  
  &.secondary {
    background-color: #f5f5f5;
    color: #333;
    border: 1px solid #d9d9d9;
    
    @include pc {
      &:hover {
        background-color: #e6e6e6;
      }
    }
  }
}
</style>

